package com.ruoyi.examation.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;


/**
 * 考试报名对象 exam_exam_registration
 *
 * @author Tellsea
 * @date 2025-09-28
 */
@Data
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@TableName("exam_exam_registration")
public class ExamRegistration extends BaseEntity {

    /**
     * 报名ID
     */
    private Long id;

    /**
     * 考试ID
     */
    @Excel(name = "考试ID")
    private Long examId;

    /**
     * 考场ID
     */
    @Excel(name = "考场ID")
    private Long venueId;

    /**
     * 用户ID
     */
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 考试时间ID
     */
    @Excel(name = "考试时间ID")
    private Long scheduleId;

    /**
     * 报名时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报名时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date registrationTime;

    /**
     * 报名状态（0已报名 1已确认 2已取消 3已参加 4缺考）
     */
    @Excel(name = "报名状态", readConverterExp = "0=已报名,1=已确认,2=已取消,3=已参加,4=缺考")
    private String registrationStatus;

    /**
     * 考试成绩
     */
    @Excel(name = "考试成绩")
    private BigDecimal examScore;

    /**
     * 考试结果（0不及格 1及格 2优秀）
     */
    @Excel(name = "考试结果", readConverterExp = "0=不及格,1=及格,2=优秀")
    private String examResult;

    /**
     * 出勤状态（0未考试 1已出勤 2缺考）
     */
    @Excel(name = "出勤状态", readConverterExp = "0=未考试,1=已出勤,2=缺考")
    private String attendanceStatus;

    /**
     * 座位号
     */
    @Excel(name = "座位号")
    private String seatNumber;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

}
